<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>FitNesseTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../testapidocs/uk/co/javahelp/maven/plugin/fitnesse/mojo/FitNesseTest.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> uk.co.javahelp.maven.plugin.fitnesse.mojo;
<a class="jxr_linenumber" name="2" href="#2">2</a>   
<a class="jxr_linenumber" name="3" href="#3">3</a>   <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
<a class="jxr_linenumber" name="4" href="#4">4</a>   <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a class="jxr_linenumber" name="5" href="#5">5</a>   <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a class="jxr_linenumber" name="6" href="#6">6</a>   
<a class="jxr_linenumber" name="7" href="#7">7</a>   <strong class="jxr_keyword">import</strong> java.lang.reflect.Constructor;
<a class="jxr_linenumber" name="8" href="#8">8</a>   <strong class="jxr_keyword">import</strong> java.lang.reflect.InvocationTargetException;
<a class="jxr_linenumber" name="9" href="#9">9</a>   <strong class="jxr_keyword">import</strong> java.lang.reflect.Modifier;
<a class="jxr_linenumber" name="10" href="#10">10</a>  
<a class="jxr_linenumber" name="11" href="#11">11</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="12" href="#12">12</a>  
<a class="jxr_linenumber" name="13" href="#13">13</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../uk/co/javahelp/maven/plugin/fitnesse/mojo/FitNesseTest.html">FitNesseTest</a> {
<a class="jxr_linenumber" name="14" href="#14">14</a>  
<a class="jxr_linenumber" name="15" href="#15">15</a>  	<em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_javadoccomment">	 * <a href="http://stackoverflow.com/questions/4520216/how-to-add-test-coverage-to-a-private-constructor" target="alexandria_uri">http://stackoverflow.com/questions/4520216/how-to-add-test-coverage-to-a-private-constructor</a></em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_javadoccomment">	 */</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;C&gt; <strong class="jxr_keyword">void</strong> assertUtilityClass(Class&lt;C&gt; clazz) <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException, InvocationTargetException {
<a class="jxr_linenumber" name="19" href="#19">19</a>  		assertTrue(<span class="jxr_string">"Utility class should be 'final'"</span>, Modifier.isFinal(clazz.getModifiers()));
<a class="jxr_linenumber" name="20" href="#20">20</a>  		<em class="jxr_comment">//assertTrue("Utility class should be 'public'", Modifier.isPublic(clazz.getModifiers()));</em>
<a class="jxr_linenumber" name="21" href="#21">21</a>  		Constructor&lt;?&gt;[] ctors = clazz.getDeclaredConstructors();
<a class="jxr_linenumber" name="22" href="#22">22</a>  		assertEquals(<span class="jxr_string">"Utility class should only have one constructor"</span>, 1, ctors.length);
<a class="jxr_linenumber" name="23" href="#23">23</a>  		Constructor&lt;?&gt; ctor = ctors[0];
<a class="jxr_linenumber" name="24" href="#24">24</a>  		assertFalse(<span class="jxr_string">"Utility class constructor should be inaccessible"</span>, ctor.isAccessible());
<a class="jxr_linenumber" name="25" href="#25">25</a>  		ctor.setAccessible(<strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// obviously we'd never do this in production</em>
<a class="jxr_linenumber" name="26" href="#26">26</a>  		assertEquals(<span class="jxr_string">"You'd expect the construct to return the expected type"</span>, clazz, ctor.newInstance().getClass());
<a class="jxr_linenumber" name="27" href="#27">27</a>  	}
<a class="jxr_linenumber" name="28" href="#28">28</a>  	
<a class="jxr_linenumber" name="29" href="#29">29</a>  	@Test
<a class="jxr_linenumber" name="30" href="#30">30</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testFitNesse() <strong class="jxr_keyword">throws</strong> InstantiationException, IllegalAccessException, InvocationTargetException {
<a class="jxr_linenumber" name="31" href="#31">31</a>  	    assertUtilityClass(FitNesse.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="32" href="#32">32</a>  	}
<a class="jxr_linenumber" name="33" href="#33">33</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

